#include "mainwindow.h"

#include <QApplication>
#include "server.h"
#include <QDebug>
#include <QWindow>
#include <QMessageBox>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    QString wName = w.getDestWindowName();
    HWND hParentProc = ::FindWindow(NULL, wName.toStdWString().c_str());
    HWND hMainProc = ::FindWindowEx(hParentProc,NULL,NULL, L"视觉控制窗口");

    //如果控制窗口已经显示
    if(hMainProc != NULL){
//        QMessageBox::information(NULL, "信息", "这是一个信息对话框", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
        qDebug()<<"视觉控制窗口已经运行";
        if(hParentProc != NULL){
            WId parentWinId = (WId)hParentProc;
            QWindow* parentWidow = QWindow::fromWinId(parentWinId);
              parentWidow->setFlags(Qt::Widget | Qt::WindowStaysOnTopHint);
              parentWidow->showMinimized();
              ::ShowWindow(hParentProc,SW_MAXIMIZE);
        }
        return -1;
    }
    //没有显示，则启动控制程序，作为子窗口放到第三方应用的窗口上
     else if(hParentProc != NULL ){
        ::ShowWindow(hParentProc,SW_MINIMIZE); //这句必须要加上，如果父窗口本身已经是最大化的，再发最大化消息，这个窗口没有置顶弹出，必须最小化后，再最大化，才能弹出
        WId parentWinId = (WId)hParentProc;
        QWindow* parentWidow = QWindow::fromWinId(parentWinId);
         w.setProperty("_q_embedded_native_parent_handle", QVariant(parentWinId));
         w.winId();
         w.windowHandle()->setParent(parentWidow);
            parentWidow->setFlags(Qt::Widget | Qt::WindowStaysOnTopHint);
           ::ShowWindow(hParentProc,SW_MAXIMIZE);
         //parentWidow->setFlags(Qt::Widget | Qt::WindowStaysOnTopHint);
    }
   //移动到右上角显示
    w.move(1850, 0);
//    w.setWindowFlags(w.windowFlags()|Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint); //在所有窗口上置顶
 //   w.setAttribute(Qt::WA_TranslucentBackground, true);//设置窗口背景透明
//    w.move(1639, 2);
    w.show();

    return a.exec();
}

